package org.jeecg.modules.param.area.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.param.area.entity.BikeSysUserArea;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.List;

/**
 * @Description: bike_sys_area
 * @Author: 月月鸟
 * @Date:   2021-05-18
 * @Version: V1.0
 */
@Data
@TableName("bike_sys_area")
@ApiModel(value="bike_sys_area对象", description="bike_sys_area")
public class BikeSysAreaRes implements Serializable {
    private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
	/**业务编码(如省码)*/
	@Excel(name = "业务编码(如省码)", width = 15)
    @ApiModelProperty(value = "业务编码(如省码)")
    private String areaCode;
	/**区域名称*/
    @Excel(name = "区域名称", width = 15)
    @ApiModelProperty(value = "区域名称")
    private String name;
	/**上级区域主键*/
	@Excel(name = "上级区域主键", width = 15)
    @ApiModelProperty(value = "上级区域主键")
    private String parentId;
	/**区域类型(1市, 2区, 3镇, 4街道)*/
	@Excel(name = "区域类型(1市, 2区, 3镇, 4街道)", width = 15)
    @ApiModelProperty(value = "区域类型(1市, 2区, 3镇, 4街道)")
    private String type;
	/**启用状态(1->启用, 0->未启用)*/
	@Excel(name = "启用状态(1->启用, 0->未启用)", width = 15, dicCode = "mode_type")
	@Dict(dicCode = "mode_type")
    @ApiModelProperty(value = "启用状态(1->启用, 0->未启用)")
    private String status;
	/**长编码以下划线区分*/
	@Excel(name = "长编码以下划线区分", width = 15)
    @ApiModelProperty(value = "长编码以下划线区分")
    private String longCode;
	/**长名称以下划线区分*/
	@Excel(name = "长名称以下划线区分", width = 15)
    @ApiModelProperty(value = "长名称以下划线区分")
    private String longName;
	/**是否有子节点*/
	@Excel(name = "是否有子节点", width = 15)
    @ApiModelProperty(value = "是否有子节点")
    private String hasChild;
	/**层级(1、2、3、4、5)*/
	@Excel(name = "层级(1、2、3、4、5)", width = 15)
    @ApiModelProperty(value = "层级(1、2、3、4、5)")
    private String grade;
	/**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
	/**创建时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private java.util.Date createTime;
	/**修改人*/
    @ApiModelProperty(value = "修改人")
    private String updateBy;
	/**修改时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "修改时间")
    private java.util.Date updateTime;
	/**备注*/
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String memo;
	/**父级节点*/
	@Excel(name = "父级节点", width = 15)
    @ApiModelProperty(value = "父级节点")
    private String pid;

	@TableField(exist = false)
    @ApiModelProperty(value = "用户区域权限")
    private BikeSysUserArea bikeSysUserArea;

	@TableField(exist = false)
    @ApiModelProperty(value = "子级")
    private List<BikeSysAreaRes> children;
	@TableField(exist = false)
    @ApiModelProperty(value = "title")
    private String title;
}
